home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 26 / Cream of the Crop 26.iso / program / qlib205.zip / QLIB.ZIP / TEST / TIMER.INC < prev    next >
Text File  |  1997-07-02  |  2KB  |  146 lines

  1. ;this file holds code for speed testing (note: smaller #s are faster!!)
  2.  
  3. c1 macro
  4.   inc esi
  5.   inc esi
  6. endm
  7.  
  8. c2 macro
  9.   add esi,2
  10. endm
  11.  
  12. COMMENT !
  13.  
  14. c1 macro      ;7 cylces
  15.   xor cx,cx
  16.   dec cx
  17. endm
  18.  
  19. c2 macro
  20.   mov cx,-1   ;5 cycles  ;faster
  21. endm
  22.  
  23. c1 macro
  24.   ;place code here
  25.   xor ebx,ebx    ;535 (faster)
  26.   mov bl,al
  27. endm
  28.  
  29. ;This is the 2nd code to be compared
  30. c2 macro
  31.   ;place alternate code here
  32.   movzx ebx,al   ;753
  33. endm
  34.  
  35. ;This is the 1st code to be compared
  36. c1 macro
  37.   ;place code here
  38.   xor ebx,ebx    ;640 (faster)
  39.   mov bx,ax
  40. endm
  41.  
  42. ;This is the 2nd code to be compared
  43. c2 macro
  44.   ;place alternate code here
  45.   movzx ebx,ax   ;747
  46. endm
  47.  
  48. c1 macro
  49.   push eax
  50.   push ebx
  51.   push ecx
  52.   push edx
  53.   push esi
  54.   push edi
  55.   push ebp
  56.   push esp
  57.   xor eax,eax
  58.   pop esp
  59.   pop ebp
  60.   pop edi
  61.   pop esi
  62.   pop edx
  63.   pop ecx
  64.   pop ebx
  65.   pop eax
  66. endm
  67. c2 macro
  68.   pushad
  69.   xor eax,eax
  70.   popad
  71. endm
  72.  
  73. ;Finding #1 loop vs. dec/jnz
  74. c1 macro         ;5647 (faster)
  75.   mov ecx,10
  76. t1:
  77.   dec ecx
  78.   jnz t1
  79. endm
  80. c2 macro         ;9193
  81.   mov ecx,10
  82. t2:
  83.   loop t2
  84. endm
  85.  
  86. ;Finding #2 mov vs. xor (clearing)
  87. c1 macro         ;same
  88.   mov ecx,0
  89. endm
  90. c2 macro         ;same ? - (only because of caching) - once I disable cache
  91.   xor ecx,ecx    ;the proper anwser should arise
  92. endm
  93.  
  94. ;Finding #3 xor vs. movzx (word)
  95. c1 macro         ;640 (faster)
  96.   xor eax,eax
  97.   xor ebx,ebx
  98.   mov bx,ax
  99. endm
  100. c2 macro         ;870
  101.   xor eax,eax
  102.   movzx ebx,ax
  103. endm
  104.  
  105. ;Finding #4 xor vs. movzx (byte)
  106. c1 macro         ;533 (faster)
  107.   xor eax,eax
  108.   xor ebx,ebx
  109.   mov bl,al
  110. endm
  111. c2 macro         ;833
  112.   xor eax,eax
  113.   movzx ebx,al
  114. endm
  115.  
  116. ;Finding #5 imul vs. lea
  117. c1 macro
  118.   mov eax,2      ;1386
  119.   imul eax,3
  120. endm
  121. c2 macro
  122.   mov eax,2      ;640 (faster)
  123.   lea eax,[eax+eax*2]
  124. endm
  125.  
  126. ;Finding #6 Pipeline cache
  127. c1 macro                 ; These are both identical but I was testing out
  128.   cld                    ; my new Pipeline cache
  129.   mov esi,offset junk    ; w/o Pipeline = 20170
  130.   mov edi,offset junk    ;  w/ Pipeline = 15486  (23% faster)
  131.   mov ecx,0ffffh
  132.   rep movsb
  133. endm
  134. c2 macro
  135.   cld
  136.   mov esi,offset junk
  137.   mov edi,offset junk
  138.   mov ecx,0ffffh
  139.   rep movsb
  140. endm
  141. .data
  142.   junk db 10000h dup (12h)
  143. .code
  144.  
  145. !
  146.